CPU 當中有許多的暫存器
包含用來儲存臨時數值的通用暫存器、用來保存指令編碼或位址的暫存器
這篇將要來分析這些可以保存數值的暫存器是如何實現的
在 CPU 中有許多的暫存器,這些暫存器是由 32bits 所組成
而每個 bit 可以用左下的那個電路來實現
他稱為 D flip-flop,是具有存儲訊息能力的基本單元,可以由前篇所述的與或非邏輯門所構成
在這篇將不深入討論他的實現細節,而注重在將如何利用這個功能來實作暫存器
他主要有一個數據輸入、一個數據輸出、以及一個時鐘輸入
在 clock 從 0→1 的很短時間中會採樣輸入D,傳送到輸出Q,其餘時間則維持不變
從採樣D到輸出Q稱為 CLK-to-Q 時間,而採樣前後D不能有變化則稱為 Setup/Hold 時間
舉上圖為例,在 clock 第一次上升的時候經過為 CLK-to-Q 時間會將 D(In) 的值採樣呈現在 Q(Out)
之後雖然 D 發生改變但並不影響 Q 值,直到下一次的 clock 上升才會再次採樣
而當我們將多個 D 觸發器連起來,就可以構成一個暫存器
當然這僅是簡單的原理說明,現實中暫存器的實現還是複雜許多
不過在可以實作出一個暫存器之後,就可以用一樣的方式實作其他的暫存器
接著再透過各種邏輯電路與內部總線的串連就構成一個 CPU 的基本架構了